﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using MembresiaService.Dominio;
using System.Data.SqlClient;

namespace MembresiaService.Persistencia
{
    public class MensajeDAO
    {
        private int ObtenerNuevoCodigo()
        {
            int codigo;

            string sql = "select IsNull(max(idMensaje)+1,1) codigo from mensajes";

            using (SqlConnection con = new SqlConnection(ConexionUtil.ObtenerCadena()))
            {
                con.Open();
                using (SqlCommand com = new SqlCommand(sql, con))
                {
                    codigo = (int)com.ExecuteScalar();
                }
            }
            return codigo;
        }


        public void CrearMensaje(Mensaje MensajeACrear)
        {
            string sql = "INSERT INTO Mensajes VALUES (@cod,@descripcion,@fechmensaje,@idofertante,@idcontratante)";
            int id = ObtenerNuevoCodigo();
            using (SqlConnection con = new SqlConnection(ConexionUtil.ObtenerCadena()))
            {
                con.Open();
                using (SqlCommand com = new SqlCommand(sql, con))
                {
                    com.Parameters.Add(new SqlParameter("@cod", id));
                    com.Parameters.Add(new SqlParameter("@descripcion", MensajeACrear.DscMensaje));
                    com.Parameters.Add(new SqlParameter("@fechmensaje", MensajeACrear.FechMensaje));
                    com.Parameters.Add(new SqlParameter("@idofertante", MensajeACrear.CodOfertante ));
                    com.Parameters.Add(new SqlParameter("@idcontratante", MensajeACrear.CodContratante));
                    com.ExecuteNonQuery();
                }
            }
        }

        public List<Mensaje> ListarBandejaDeEntrada(int idOfertante)
        {
            List<Mensaje> correosEncontrados = new List<Mensaje>();
            Mensaje mensajeEncontrado = null;
            string sql = "SELECT m.dscMensaje,m.fecMensaje,m.idContratante " +
                         "FROM Mensajes m where m.idOfertante="+idOfertante;
            using (SqlConnection con = new SqlConnection(ConexionUtil.ObtenerCadena()))
            {
                con.Open();
                using (SqlCommand com = new SqlCommand(sql, con))
                {
                    using (SqlDataReader resultado = com.ExecuteReader())
                    {
                        while (resultado.Read())
                        {
                            mensajeEncontrado = new Mensaje()
                            {
                                DscMensaje = (string)resultado["dscMensaje"],
                                FechMensaje = ((DateTime)resultado["fecMensaje"]).ToString("dd/MM/yyyy"),
                                CodContratante  = (int)resultado["idContratante"],
                            };
                            correosEncontrados.Add(mensajeEncontrado);
                        }
                    }
                }
            }
            return correosEncontrados;
        }
    }
}